XFireHome M5M6-SNAPSHOTDevelopersDeveloper Space |
XMLBeansWSDLBuilder and XMLBeansWSDLBuilderAdapter are included that let XFire generate the types portion of your WSDL. Schemas are included (not imported) into the WSDL. XFire will generate a document-literal style WSDL file. Using the XMLBeansWSDLBuilderAdapter"UsageExample.java" DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder; builder = factory.newDocumentBuilder(); List schemaList = new ArrayList(); for (int i = 0; i < mySchema.length; i++) { Resource resource = new FileSystemResource(mySchema[i]); org.w3c.dom.Document schema = builder.parse(resource.getFile()); schemaList.add(schema); } Document[] schemas = (Document[]) schemaList.toArray(new Document[schemaList.size()]); ServiceEndpoint endpoint = myServiceRegistry.getServiceEndpoint(myService); endpoint.setWSDLWriter(new XMLBeansWSDLBuilderAdapter(endpoint, myTransportManager, schemas)); Configuring using SpringXMLBeansWSDLBuilderConfigurer lets you configure the XMLBeansWSDLBuilder using Spring. Include the following in your xfire-servlet.xml or in an equivalent applicationContext.xml file. <bean id="xfire.xmlbeansConfigurer" class="org.codehaus.xfire.xmlbeans.XMLBeansWSDLBuilder.Configurer" init-method="init"> <property name="transportManager"> <ref bean="xfire.transportManager"/> </property> <property name="service"> <value>CustomerService</value> </property> <property name="serviceRegistry"> <ref bean="xfire.serviceRegistry"/> </property> <property name="schemas"> <list> <value>schema1.xsd</value> <value>schema2.xsd</value> </list> </property> </bean> or you can alternatively specify a single schema using: <bean id="xfire.xmlbeansConfigurer" class="org.codehaus.xfire.xmlbeans.XMLBeansWSDLBuilder.Configurer" init-method="init"> ... <property name="schema"> <value>schema1.xsd</value> </property> </bean> |